package com.detech.sbom.base.log.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.detech.sbom.base.config.mybatis.PageParam;
import com.detech.sbom.base.mybatis.log.entity.TbLogP6spyEntity;
import com.detech.sbom.base.mybatis.log.entity.TbLogSysEntity;
import org.springframework.scheduling.annotation.Async;

public interface LogService {

    /**
    * @description 日志信息保存到数据库（异步处理）
    * @author 方安伦
    * @date 2021/11/25 14:55
    * @param sysLogEntity
     **/
    @Async
    void saveSysLog(TbLogSysEntity sysLogEntity);

    /**
    * @description 将P6spy性能监控日志信息保存到数据库（异步处理）
    * @author 方安伦
    * @date 2021/11/25 14:55
    * @param msg
     **/
    @Async
    void writeDB(String msg) ;

    /**
    * @description 查询系统日志列表
    * @author 方安伦
    * @date 2021/12/14 11:02
    * @param pageParam,content,logType,module,operator,ip,logTime
    * @return Page<TbLogSysEntity>
     **/
    Page<TbLogSysEntity> loadSysLogList(PageParam pageParam, String content, String logType, String module, String operator, String ip, String logTime) ;

    /**
    * @description 查询P6spy日志列表
    * @author 方安伦
    * @date 2021/12/16 9:24
    * @param pageParam,ybySql,paramSql,xhsj,xmmc,logTime
    * @return Page<TbLogP6spyEntity>
     **/
    Page<TbLogP6spyEntity> loadP6spyLogList(PageParam pageParam, String ybySql,String paramSql,Integer xhsj,String xmmc, String logTime) ;

    /**
    * @description 查询系统日志详情
    * @author 方安伦
    * @date 2021/12/16 11:40
    * @param id
    * @return TbLogSysEntity
     **/
    TbLogSysEntity loadSysLogDetail(String id) ;

    /**
    * @description 查询P6spy日志详情
    * @author 方安伦
    * @date 2021/12/16 11:42
    * @param id
    * @return TbLogP6spyEntity
     **/
    TbLogP6spyEntity loadP6spyLogDetail(String id) ;

}
